// 提交链接：https://leetcode.cn/problems/find-the-town-judge/description/
// lc997. 找到小镇的法官
// 完成日期：2024/9/23
// c++ 哈希表 图论 数组

class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust) {
        vector<int> a(n + 1);   // i 信任的人数
        vector<int> b(n + 1);   // i 被信任的人数
        for (auto& x : trust) 
        {
            int m = x[0], n = x[1];    // m 和 n 表示每一组数据中 m 信任 n
            a[m]++;
            b[n]++;
        }
        
        for (int i = 1; i <= n; ++i) 
        {
            if (a[i] == 0 && b[i] == n - 1)
                return i;
        }
        return -1;
    }
};